<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    /*
        早期js中，直接通过函数定义类
            - 一个函数如果直接调用xxx（）那么这个函数就是一个普通函数
            - 一个函数如果通过new关键字调用xxx（）那么这个函数就是一个构造函数
    */
    /* 自执行函数，避免方法未定义就使用了new */
    let Person = (function () {
      function Person(name, age) {
        this.name = name;
        this.age = age;
        this.sayHello = function () {
          console.log(this.name);
        };
      }
      Person.prototype.a = 10;
      return Person;
    })();
    let p1 = new Person("lishuaihao", 25);
    console.log(p1);
    class Anima {
      name = "ani";
      age = 2;
    }
    class Dog {
      say() {
        console.log("gou");
      }
    }
    let dog = new Dog();
    let a1 = new Anima();
    dog.prototype = Anima.prototype;
    console.log("age" in dog);
    console.log(dog);
  </script>
</html>
